package com.ziytek.web.citizen.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ziytek.web.citizen.configuration.db.DDS;
import com.ziytek.web.citizen.constant.DdsConstant;
import com.ziytek.web.citizen.model.bean.CabinetNoList;
import com.ziytek.web.citizen.pojo.basic.BasicCabinetIp;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author fenghx
 * @version 1.0
 * @className mapperMapper
 * Description:
 * @date 2024/3/18 17:20
 */
public interface BasicCabinetIpMapper extends BaseMapper<BasicCabinetIp> {
    /**
     * Description: 更加ip查询机柜号列表
     *
     * @param ipList ipList
     * @return List<String>
     */
    @DDS(DdsConstant.DS_BASIC)
    List<CabinetNoList> queryCabinetNoByIp(@Param("ipList") List<String> ipList);

    /**
     * Description: 更加ip查询机柜号列表
     *
     * @param ip ip
     * @return List<String>
     */
    @DDS(DdsConstant.DS_BASIC)
    BasicCabinetIp queryCabinetIpInfoByIp(String ip);

    /**
     * Description: 查询机柜网络信息
     *
     * @param id id
     * @return CabinetIpSet
     */
    @DDS(DdsConstant.DS_BASIC)
    BasicCabinetIp queryById(String id);

    /**
     * Description: 通过机柜编号查询机柜网络信息
     *
     * @param cabinetNo id
     * @param available 是否可用
     * @return CabinetIpSet
     */
    @DDS(DdsConstant.DS_BASIC)
    BasicCabinetIp queryByCabinetNo(String cabinetNo, String available);

    /**
     * Description: 通过机柜编号查询机柜网络信息
     *
     * @param available 是否可用
     * @return CabinetIpSet
     */
    @DDS(DdsConstant.DS_BASIC)
    List<BasicCabinetIp> queryAllByAvailable(String available);

    /**
     * Description: 新增机柜网络信息
     *
     * @param cabinetIp 机柜网络信息
     */
    @DDS(DdsConstant.DS_BASIC)
    void insertCabinet(BasicCabinetIp cabinetIp);

    /**
     * Description: 更新机柜网络信息
     *
     * @param cabinetNo  机柜编号
     * @param ip         ip
     * @param available  是否可用
     * @param updateTime 更新时间
     * @param id         id
     */
    @DDS(DdsConstant.DS_BASIC)
    void updateCabinet(String cabinetNo, String ip, String available, Long updateTime, Long id);

    /**
     * Description: 查询id
     *
     * @return Long
     */
    @DDS(DdsConstant.DS_BASIC)
    Long queryMaxId();
}